package main

import (
	"fmt"
)

//START OMIT
type Duck interface {
	Quack()
}

type Foo struct {
}

func (f *Foo) Quack() {
	fmt.Println("Quack foo")
}

type MyInt int

func (i MyInt) Quack() {
	fmt.Println("Quack", i)
}

func main() {
	ducks := []Duck{&Foo{}, MyInt(42)}
	for _, d := range ducks {
		d.Quack()
	}
}

//STOP OMIT
